Large-scale online services such as email services, social networking services, and media services have significant storage and bandwidth requirements. For example, an enterprise-scale e-mail system is a large, distributed online service. To support organizations with 50,000+ users, multiple servers are used with hundreds of terabytes of combined storage, often distributed across multiple data centers.
In many online service deployments, user data (e.g., profiles, accounts, mailboxes, etc.) are assigned to servers greedily. For example, user data is allocated to a server by choosing the server with the lowest storage utilization. If a server's storage utilization exceeds a threshold, data may be migrated to a new server to balance the storage load. Periodically, as all the servers become storage capacity bound, a new server is added. Hence, a key challenge for such online services is to improve the ratio between the offered quota and the actual storage provisioned.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known online services.